package com.hzx.shoot;

import com.hzx.shoot.img.Images;

import java.awt.image.BufferedImage;

/*
 * 敌人类 ：小敌人
 * */
public class Airplane extends FlyingObject implements Enemy {
    @Override
    public String toString() {
        return "Airplane{" +
                "speed=" + speed +
                ", wdith=" + wdith +
                ", height=" + height +
                ", x=" + x +
                ", y=" + y +
                '}';
    }

    // 速度
    public int speed;

    public Airplane() {
//        this.wdith = 96;
//        this.height= 74;
//        this.x = (int)(Math.random()*(512-this.wdith));
//        this.y = -this.height;
        super(96, 74);
        speed = 3;
    }

    int index = 1;

    @Override
    public BufferedImage getImage() {
        // 游戏状态在开始运行的情况的下，应该是默认的第一张
        if (state == LIVE) {
            // 如果小敌机是活着的，返回第一张图片
            return Images.airplaneImage[0];
        } else if (state == DEAD) {
            // 当发生碰撞之后，图片要进行爆炸效果的图片切换 ： 4张图片进行一次遍历
            BufferedImage image = Images.airplaneImage[index++];
            if (index == Images.airplaneImage.length) { // 图片如果变量到了最后一张，那么就可以把当前的对象从敌人数组中移除了
                state = REMOVE;
            }
            return image;
        }
        return null;
    }

    @Override
    public void step() {
        // 小敌人向下移动
        this.y += speed;
    }

    @Override
    public boolean isOutBound() {
        if (this.y >= World.HEIGHT) {
            return true;
        }
        return false;
    }

    @Override
    public int getScore() {
        return 2;
    }
}

